Programmable semiconductor devices, such as programmable read-only memories (PROMs) and erasable programmable read-only memories (EPROMs), are in common use in present computer systems. They can be used as control memory or to substitute for combinations of logic gate components. Due to the many different kinds of devices, the many different manufacturers, and the many different applications which users wish to put these devices to, customization of programmable devices has become common. Programming these devices, and subsequent testing of already programmed devices, are major cost elements of the finished product. Due to this cost, it is generally desirable to make PROM programming as automatic as possible.
Programming is generally accomplished by electrical impulses applied to the input pins of the programmable device. The manufacturer specifies a set of voltages or other signals which are input to the programmable device, which will blow internal fuses or perform other "burn in" activity, to program the device. There is a wide variety of manufacturers' requirements for voltage levels to be applied to these programmable devices to successfully program them. Due to this wide variety, it is generally desirable to make PROM programming as flexible as possible.